|
*QTW 73 - ÉOÉçÅ[ÉoÉãÉÅÉÇÉäÇ…äiî[Ç≥ÇÍÇΩ PICT Ç…ëŒÇ∑ÇÈ PicHandle ÇçÏê¨Ç∑ÇÈ (96 îN 2 åé 09 ì˙)
Q: åªç›ÅAÉNÉâÉCÉAÉìÉg/ÉTÅ[ÉoÉAÉvÉäÉPÅ[ÉVÉáÉìÇäJî≠ǵǃǢNjÇ∑ÅBÉTÅ[ÉoÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕ Macintosh Ç≈ìÆçÏǵÅAÉNÉâÉCÉAÉìÉgÉAÉvÉäÉPÅ[ÉVÉáÉìÇÕ Windows É}ÉVÉìÇégǢNjÇ∑ÅBDZÇÃÇΩÇflÅAÉOÉçÅ[ÉoÉãÉÅÉÇÉäÇ…äiî[Ç≥ÇÍÇΩ PICT Ç…ëŒÇ∑ÇÈ PicHandle ÇçÏê¨Ç∑ÇÈïKóvǙdžÇËÇ‹Ç∑ÅBǫǧÇ∑ÇÍnjǢǢÇÃÇ≈ǵÇÂǧǩÅB
A: éüÇ…ÅAPicHandle ÇçÏê¨Ç∑ÇÈÇΩÇflÇÃÉTÉìÉvÉãÉRÅ[ÉhÇé¶ÇµÇ‹Ç∑ÅB
íçà”:DZÇÃÉRÅ[ÉhÇÕÅAñ{ìñÇà PICT ÇæÇØÇëŒè€Ç…ìÆçÏǵÅAOpenPictureFile/GetPictureFromFile ÇégǡǃÉçÅ[ÉhÇ≈Ç´ÇÈÇ∑Ç◊ǃÇà JPEG/JFIF ÉCÉÅÅ[ÉWÇ≈ÇÕìÆçÏǵNjÇπÇÒÅB
// ---------------------------------------------------------------------
//
// Pict2DIB.c - ÉTÉìÉvÉã QuickTime for Windows ÉAÉvÉäÉPÅ[ÉVÉáÉì
//
// ÉRÉ}ÉìÉhÉâÉCÉìÇ≈éwíËÇ≥ÇÍÇΩ PICT ÉtÉ@ÉCÉãÇ©ÇÁÉOÉçÅ[ÉoÉãÉÅÉÇÉäÇ…
// PICT ÉfÅ[É^Çì«Ç›çûÇ›ÅAPICT Ç…ÉAÉNÉZÉXÇ∑ÇÈÇΩÇflÇà PicHandle Ç
// ÉLÉÉÉXÉgǵǃÅADZÇà PicHandle ÇégǡǃÅADIB Çä‹Çfi .BMP ÉtÉ@ÉCÉã
// ÇçÏê¨Ç∑ÇÈï˚ñ@ÇãÔëÃìIÇ…é¶ÇµÇ‹Ç∑ÅB
//
// dib.h ÇΔ WriteDIB ä÷êîÇÕÅAMicrosoft Visual C++ ÇΔ Microsoft Developer
// Network CD-ROM Ç…ópà”Ç≥ÇÍǃǢNjÇ∑ÅB
//
// Copyright 1988-1996 Apple Computer, Inc. All Rights Reserved.
//
// ---------------------------------------------------------------------
static char szAppName[] = "Pict2DIB";
#include
#include
#include "dib.h"
#define MB_Ret(msg, code) \
{ MessageBox (NULL, msg, szAppName, MB_OK); return code; }
int PASCAL WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpszCmdParam, int CmdShow)
{
HFILE hfile;
DWORD lSize;
HANDLE hGlobalMem;
char huge * hpGlobalMem;
DIBHandle hdPicture;
// ÉtÉ@ÉCÉãÇäJǢǃÅAǪÇÃÉTÉCÉYÇåüèoÇ∑ÇÈ
hfile = _lopen (lpszCmdParam, READ);
if (hfile==HFILE_ERROR) MB_Ret ("_lopen failure", 0);
lSize = _llseek (hfile, 0, 2);
// PICT ÉfÅ[É^Ç…égópÇ∑ÇÈè\ï™Ç»ÉTÉCÉYÇÃÉOÉçÅ[ÉoÉãÉÅÉÇÉäÇäÑÇËìñǃÅA
// Huge É|ÉCÉìÉ^ÇéÊìæÇ∑ÇÈ
hGlobalMem = GlobalAlloc (GPTR, lSize-512);
hpGlobalMem = (char huge *)GlobalLock (hGlobalMem);
// ÉtÉ@ÉCÉãÇ©ÇÁÉOÉçÅ[ÉoÉãÉÅÉÇÉäÇ… PICT ÉfÅ[É^Çì«Ç›çûÇ›ÅA
// ÉtÉ@ÉCÉãÇï¬Ç∂ÇÈ
_llseek (hfile, 512L, 0);
_hread (hfile, hpGlobalMem, lSize-512);
_lclose (hfile);
// ÉOÉçÅ[ÉoÉãÉÅÉÇÉäÉnÉìÉhÉãÇÉLÉÉÉXÉgǵǃ PicHandle ÇΔǵǃégópÇ∑ÇÈ
hdPicture = PictureToDIB ((PicHandle)hGlobalMem);
WriteDIB ("pictout.bmp", hdPicture);
// ÉOÉçÅ[ÉoÉãÉÅÉÇÉäÇÃÉçÉbÉNÇâèúǵǃâï˙Ç∑ÇÈ
GlobalUnlock (hGlobalMem);
GlobalFree (hGlobalMem);
// MessageBox Çï\é¶ÇµÇƒèIóπÇ∑ÇÈ
MB_Ret (lpszCmdParam, TRUE);
}
[ Technical Q&A's : Graphics & Media : QuickTime : QuickTime for Windows : QTW73 ]
|
|